Avant-propos
!
Désolé…
-
… pour l'anglais (really?)
-
… de ne pas être un spécialiste d'{android}
-
… que vous soyez seulement la 2ème promo à subir ce cours
-
… que ce cours arrive avant que vous sachiez développer en Android/Mobile (majorité)
-
… que vous ayez à bosser sans ordi ce matin! (au moins 1h30!)
1. Content
-
Brainstorming & organization
-
Internet search & site web building
-
UML & Modeling for Mobile Applications
-
Case study
2. Organisation prévue
Module de 21h (14 créneaux de 1,5h):
-
4 créneaux semaine 41
-
[1] Intro & Brainstorming (09/10)
-
[2] Travail de groupe (09/10)
-
[3] Première maquette du site Web (09/10)
-
[4] UML rappel et concepts importants (11/10)
-
-
10 créneaux semaine 42
-
[5] Gestion de projet spécifique, UML (17/10)
-
[6] Mise en oeuvre sur une étude de cas (17/10)
-
[7-8] Reverse ingéniérie d’une application Android (17/10)
-
[9-13] Modélisation : projet perso (binôme) (19-20/10)
-
[14] Présentation publique de votre appli perso (binôme) (20/10)
-
[14] QCM exam final (20/10)
-
3. Let’s start Brainstorming
Répartition des technos connues (depuis 2015) :
Résultats du brainstorming 2016/2017 (merci Nathan Coustenoble pour la prise de note) :
4. Wrap-up
Par petits groupes :
-
[1] Préparation du site web
-
[2] Liste des concepts UML connus et utiles
-
[3] Outils et langages de description d’écrans
-
[4] Plateformes de développement Android
-
[5] Différences iOS /Android
-
[…] Résultats du brainstorm
| Les numéros ne représentent pas un ordre d’importance! |
4.1. Plans B …
-
Spécificités des applications mobiles
-
Modélisation des interfaces
-
Modélisation de l’architecture
-
Modélisation du comportement
-
Agilité et applications mobiles
4.2. [1] Site web des fiches
| Je fait parti de ce groupe! |
4.3. [2] Concepts UML connus
-
1. Recensement des concepts connus
-
diagrammes
-
concepts dans ces diagrammes
-
méthodes (RUP, OpenUP, Agile)
-
⇒ Google Sheet ?
-
-
2. Pour le Mobile Modeling
-
brainstorming
-
4.4. [3] Outils et langages de description d’écrans
-
Type SNI (Schéma de Navigation des Interfaces)
-
Dessin / Générationd de code
-
Focus sur les Open Sources of course
-
…
4.5. [4] Plateformes de développement Android
-
Avis objectifs (chiffrés)
-
Aspects historiques
-
Focus sur les Open Sources of course
-
…
4.6. [5] Différences /
-
Niveau modélisation
-
Concepts
-
Cycle de développement
-
…
4.7. Consignes
Pour chaque groupe (sauf [1]) :
-
Exprimer le problème
-
Rechercher les solutions existantes
-
Brainstormer sur la meilleure solution
-
La formaliser un minimum
-
Remplir un poster sous la forme d’une fiche (cf. point suivant)
-
Merger sa branche
4.8. Fiche
-
Titre
-
Motivations & problems (shortly)
-
Current approaches
-
Proposed approach
-
Example
-
4.9. Résultats
En 2015/2016 nous avons eu deux équipes chargées du site web :
Pour 2016/2017 :
En 2017/2018 :
5. Exemple complet de démarche "ad hoc" autour d’UML
Nous allons aborder une étude de cas tirée du livre de Pascal Roques.
|
Pour un apperçu du livre, cf. http://www.editions-eyrolles.com/Chapitres/9782212110708/chap01.pdf. |
5.1. Le cahier des charges
Il s’agit de développer un service de vente en ligne (http://jeBouquine.com).
| Depuis l’écriture du livre un vrai site de vente utilise cette URL! |
5.2. Des besoins au code
5.3. Raffinement des besoins
5.4. Près du code
5.5. Comment trouver les classes ?
5.6. Comment trouver les interactions ?
5.7. Liens entre diagrammes
5.8. Démarche complète
6. Diagrammatic models
6.1. UML Use Case Diagram
6.2. SysML Requirements Diagram
6.3. Sketch and drawings (Maquettes)
| L’IUT de Blagnac a une licence éducation qui vous permet d’utiliser gratuitement {balsamiq} : {mybalsamiq}. |
6.4. UML Class Diagram
6.5. SNI: Schéma de Navigation d’Interface
| Il existe un plug-in eclipse pour SNI: http://sourceforge.net/projects/visual-sni/ |
6.6. UML State Machines
6.7. UML Sequence Diagram
6.8. UML Component Diagram
6.9. SysML Block Definition Diagram
6.10. SysML Internal Block Definition Diagram
6.11. UML deployment diagram
7. Process examples
7.1. One example
-
1) Identify the app users
-
2) Identify the main functionalities
-
3) Analyzing and expanding each functionality
7.2. Agile for Mobile Application Development
7.2.1. Example 1
Some restrictions with mobile application development are:
-
Mobile has restrictions: size of the apps, …
-
Application should be downloadable very fast
-
Update applications quickly and smoothly
-
Error free and fast
-
Seamlessly interact with backend server as needed
7.2.2. Example 2
Challenges presented by developing mobile apps:
-
Short life cycles
-
Short development cycles
-
Limited hardware
-
Frequently changing user demands
-
Must be easily updateable
-
Must download quickly
7.2.3. Example 3
An “Agile with Discipline” approach for mobile app development
| Taken from [IBM] |
7.2.4. Example 4
Multi-target User Interface design & Generation using MDE
| Taken from [Veldhuis2013] |
8. Reverse Engineering tools
9. Etude de cas : MIU (Management of Irit-Ut2j)
9.1. Cahier des charges
Le Laboratoire IRIT est un des plus gros laboratoire informatique de France.
C’est une unité mixte de recherche, ce qui signifie qu’en plus du CNRS,
elle a d’autres tutelles (les 3 universités toulousaine, l’INPT, etc.).
Chaque tutelle est dotée d’un représentant local du laboratoire qui fait
le lien entre le laboratoire et la tutelle.
Pour l’UT2J, ce représentant, c’est moi (Jean-Michel Bruel).
Les membres UT2J du Laboratoire IRIT sont organisés en équipes.
Ils se partagent un buget alloué chaque année par l’université
(environ 38K€ pour 2017).
Parmi les responsabilité du responsable IRIT-UT2J, on trouve de nombreuses tâches administratives (au point de devoir maintenir une F.A.Q - cf. https://bit.ly/irit-ut2j).
Celles qui sont le plus consomatrices d’énergie sont les tâches en relation avec les dépenses.
Je vous sollicite donc pour la modélisation d’une application mobile qui sera potentiellement développée dans le future, et qui permettra de faciliter cette gestion. Pour simplifier les description suivantes, nous appelerons cette application MIU (Management of IRIT-UT2J)[1].
Voici quelques caractéristiques et besoins clients (en vrac) :
-
MIU devra fonctionner sur des mobiles et tablettes {Android}.
-
On pourra différencier les rôles des personnes utilisant l’application (chercheurs, doctorants, responsable, gestionnaire).
-
On imaginera qu’il existe un accès (Web, fichier
.json, Google Doc) aux informations concernant les membres. -
Chaque utilisateur poura saisir une dépense (de type achats ou mission). Une dépense peut être prévisionnelle (devis pour un restaurant par exemple, ou déplacement à l’étranger), précise (achat de matériel sur devis) ou confirmée (remboursement de mission a posteriori par exemple).
-
Un utilisateur ne pourra pas engager de dépense si celle-ci dépasse le budget de son équipe.
-
La gestionnaire ou le responsable peuvent mettre à jour les montants de dépenses.
-
Concernant les frais, chacun aura sur sa "page personnelle" les informations concernant le solde global du compte de son équipe.
-
On pourra envisager toute option utile pour le futur (comme le calcul d’avance sur mission).
-
La gestionnaire et le responsable seront systématiquement informé de toute déclaration d’intention de dépense.
Quelques commentaires :
-
Chaque membre est toujours rattaché à une équipe (et une seule)
-
Chaque équipe dispose d’un budget propre (division au prorata de ses membres du budget global).
-
Un certain nombre de dépenses sont "communes" et viennent imputer le budget global (seuls la gestionnaire et le responsable peuvent saisir ces dépenses)
-
Les dépenses sont consultables (lecture seule) par tous les membres UT2 du Laboratoire IRIT.
9.2. Questions
-
Réalisez un diagramme des cas d’utilisation de cette application.
Figure 29. Exemple 2015/2016 (Ballades VTT) -
Réalisez un diagramme de domaine (diagramme des classes métiers) de cette application.
Figure 30. Exemple 2015/2016 (Ballades VTT) -
Réalisez un diagramme (de votre choix) pour représenter les écrans (et leur enchainement) de votre application.
Figure 31. Exemple 2015/2016 d’une maquette en Balsamiq (Ballades VTT)
Un écran est composé d’éléments structurels. Il peut donc être représenté avec un diagramme de classe.
Les enchainements d’écrans peuvent être décrits comme des comportements. On peut utiliser :
-
un d’état-transition (cf. Figure ci-dessous),
-
un outil de sketchs, genre {balsamiq} (cf. Figure ci-dessous),
-
un outil qui génère du code, genre {androidstudio}
9.3. Outils
-
Pour les mockups/sketchs : https://iutblagnac.mybalsamiq.com/projects/miu/
Vous pouvez accéder aux dessins de :
-
2015/2016 (https://iutblagnac.mybalsamiq.com/projects/voismabalade).
-
l’an dernier (https://iutblagnac.mybalsamiq.com/projects/slat-parapente).
-
9.4. Résultats attendus
-
Rapport au format
.pdf -
Démo au format de votre choix (PPT/PDF, Vidéo)
Exemple de vidéo réalisée en 2015/2016
-
.zipavec figures, modèles.uml, code, etc.
9.5. Evaluation
Rappelons les conseils habituels :
-
clarté des diagrammes et des choix (explicites) de conception ou d’interprétation réalisés
-
cohérence entre les diagrammes
L’évaluation portera principalement sur les critères suivants :
| Critère | Type de critère | Poids approximatif |
|---|---|---|
Diagramme des UC |
Correction, pertinence |
10% |
Diagramme des Classes Domaine |
Correction, pertinence |
10% |
Maquettes utilisateur / Écrans |
Correction, pertinence |
20% |
Diagrammes d’enchainement d’écran |
Correction, pertinence |
20% |
Cohérence inter-modèles (SNI/DSS, UC/DSS/DS/DCP) |
Correction, pertinence |
15% |
Communication/Présentations/Ignite |
subjectif :-) |
15% |
Clarté – Présentation du Dossier |
subjectif :-) |
10% |
|
Vous pouvez insérer une section "auto-évaluation" dans votre rapport, qui reprend cette grille et vous permet de vous auto-évaluer. |
References and useful links
References
-
[] Jim Highsmith and Martin Fowler. The agile manifesto. Software Development Magazine, 9(8) :29–30, 2001.
-
[[[1030005]]] Kieran Conboy and Brian Fitzgerald. Toward a conceptual framework of agile methods : a study of agility in different disciplines. In WISER ’04 : Proceedings of the 2004 ACM workshop on Interdisciplinary software engineering research, pages 37–44, New York, NY, USA, 2004. ACM.
-
[] Les Cahiers du Programmeur, UML2, Pascal Roques 3ème Edition, Eyrolles, 2007.
-
[] UML 2 par la pratique, Pascal Roques 6ème Edition, Eyrolles, 2007.
-
[] Le projet d’urbanisation du S.I., C. Longépé, 3ème édition, Dunod, 2006.
-
[] Modélisation objet avec UML. Pierre-Alain Muller & Nathalie Gaetner, Eyrolles, 2003.
-
[] http://developer.android.com/guide/components/fundamentals.html
Links
-
[] http://asmarterplanet.com/mobile-enterprise/blog/2015/01/agile-discipline-approach-mobile-app-development.html
-
[] http://www.uml-diagrams.org/android-application-uml-deployment-diagram-example.html
-
[] http://www.javacodegeeks.com/2013/07/android-uml-design-an-app-part-1.html
-
http://www.inf.ed.ac.uk/publications/thesis/online/IM100767.pdf
-
http://fr.slideshare.net/LiliaSfaxi/p1-introduction-a-android
-
http://www.qualitystreet.fr/2010/07/07/prototypage-agile-papier-tableau-blanc-et-balsamiq/
-
[] http://essay.utwente.nl/63418/1/MScThesis_OudeVeldhuis_FINAL.pdf
Glossary
|
Ressources
The following definitions are only informative. You can find usefull other sources here: |
- ATL
-
_ATLAS Transformation Language
- DRY
-
Don’t Repeat Yourself
- EMF
-
_Eclipse Modeling Framework
- IHM
-
Interface Homme-Machine
- MCF
-
Modèle Conceptuel des Flux
- MCT
-
Modèle Conceptuel des Traitements
- MOA/MOE
-
Maîtrise d’ouvrage (MOA) Maîtrise d’oeuvre (MOE)
- MOF
-
Modèle Organisationnel des Flux
- MOT
-
Modèle Organisationnel des Traitements
- OMG
-
Object Management Group
- PPN
-
Programme Pédagogique National
- SEF
-
Schéma d'Enchaînement des Fenêtres
- SEP
-
Schéma d'Enchaînement des Pages
- SI
-
Système d'Information
- SNI
-
Schéma de Navigation d'Interfaces
- SO
-
Système Organisationnel
- SysML
-
System Modeling Language ™
- TRL
-
Technology Readiness Level
- URL
-
Universal Ressource Locator
About…
This web site has been developped by JMB using the following (open and free) tools:
-
Asciidoctor, v.
1.5.7.1 -
The git version control system
-
The Travis Continuous Integration tool